package sucre

class PerfilAlumnoController {

    def loginService
    def beforeInterceptor = [action:this.&auth]
    def auth = {
        def result =loginService.validarAcceso(
            session["seguridad_usuario"],
            session["seguridad_funcionesHabilitadas"],
            controllerName,actionName,request.getRemoteAddr().toString())
        if(!result) {
            redirect(controller:"login",action:"auth",params:['acceso':false])
            return false
        }
    }
    def index = {}
    // the delete, save and update actions only accept POST requests
    static allowedMethods = [delete:'POST', save:'POST', update:'POST']

    def parametersService
    def create = {
        def alumnoInstance = new Alumno()
        params.eOc='edit'
        alumnoInstance.properties = params
        
        //-----------busco el alumno que inicio session-------------------------
        def usuario = Usuario.findByLogin(session["seguridad_usuario"])
        println ".................el usuario: " + usuario.email
        alumnoInstance=Alumno.findByCorreo(usuario.email)
        println ">>>>>>>>>>" +  alumnoInstance
        return [alumnoInstance:alumnoInstance,eOc:params.eOc]
    }

    def save = {
        def listaErrores=[]
        //-----------------------formateo la fecha --------------------------
        def formateador          = new java.text.SimpleDateFormat("dd/MM/yyyy")
        params.fechaDeNacimiento = formateador.parse(params.fechaDeNacimiento)
        params.especialidad = Especialidad.get(params.especialidadID)
        def alumnoInstance       = new Alumno(params) 
        if(params.eOc=='edit'){
            println "params.id: " + params.id
            alumnoInstance=Alumno.get(params.id)
            alumnoInstance.properties=params
        }
        Alumno.withTransaction{ status ->
            try{
                if(!alumnoInstance.hasErrors() && alumnoInstance.save(flush:true)) {                    
                    //def.titular.actualizado
                    flash.message=message(code:'Perfil Actualizado', args:[alumnoInstance])
                }
            }catch(Exception e){
                println e
                listaErrores.add(message(code:'def.alumno.error.Creando'))
                status.setRollbackOnly()
            }
        }    

        render(view:'create',model:[alumnoInstance:alumnoInstance,
                eOc:params.eOc,upd:'si',listaErrores:listaErrores])
    }
}
